﻿using System;
using System.Collections.Generic;
using System.Text;
using WeShare.WeiXin.Common.EnumKey;

namespace WeShare.WeiXin.Mp.Card.Entity
{
    public class MemberInfo : CardInfo
    {
        #region 会员卡专属字段
        /// <summary>
        /// 	商家自定义会员卡背景图，须 先调用 上传图片接口 将背景图上传至CDN，否则报错， 卡面设计请遵循 微信会员卡自定义背景设计规范 ,像素大小控制在 1000像素*600像素以下
        /// 	非必填
        /// </summary>
        public string background_pic_url { get; set; }
        /// <summary>
        /// 会员卡特权说明。必填        
        /// </summary>
        public string prerogative { get; set; }
        /// <summary>
        /// 设置为true时用户领取会员卡后系统自动将其激活，无需调用激活接口.传入自动激活字段auto_activate之后，一键开卡设置和接口激活设置的激活url均不再显示，用户领取卡片之后，系统自动帮用户激活，积分、储值等自定义显示信息均为0
        /// </summary>
        public bool? auto_activate { get; set; }
        /// <summary>
        /// 是否支持一键激活
        /// </summary>
        public bool? wx_activate { get; set; }
        /// <summary>
        /// 是否支持跳转型一键激活
        /// </summary>
        public bool? wx_activate_after_submit { get; set; }
        /// <summary>
        /// 跳转型一键激活跳转的地址链接           
        /// </summary>
        public string wx_activate_after_submit_url { get; set; }
        /// <summary>
        /// 显示积分，填写true或false，如填写true，积分相关字段均为必填 若设置为true则后续不可以被关闭。
        /// </summary>
        public bool? supply_bonus { get; set; }
        /// <summary>
        /// 设置跳转外链查看积分详情。仅适用于积分无法通过激活接口同步的情况下使用该字段。
        /// </summary>
        public string bonus_url { get; set; }
        /// <summary>
        /// 是否支持储值，填写true或false。如填写true，储值相关字段均为必 填 若设置为true则后续不可以被关闭。该字段须开通储值功能后方可使用， 详情见： 获取特殊权限
        /// </summary>
        public bool? supply_balance { get; set; }
        /// <summary>
        /// 设置跳转外链查看余额详情。仅适用于余额无法通过激活接口同步的情况下使用该字段。
        /// </summary>
        public string balance_url { get; set; } = null;
        /// <summary>
        /// 	自定义会员信息类目，会员卡激活后显示,包含name_type (name) 和url字段
        /// </summary>
        public CustomField custom_field1 { get; set; }
        public CustomField custom_field2 { get; set; }
        public CustomField custom_field3 { get; set; }
        /// <summary>
        /// 会员卡自定义类目
        /// </summary>
        public class CustomField
        {
            public MemberCardType name { get; set; }
            /// <summary>
            /// 点击类目跳转外链url            
            /// </summary>
            public string url { get; set; }
        }
        /// <summary>
        /// 积分清零规则.非必填。
        /// </summary>
        public string bonus_cleared { get; set; } = null;
        /// <summary>
        /// 积分规则。非必填。
        /// </summary>
        public string bonus_rules { get; set; } = null;
        /// <summary>
        /// 储值说明。非必填。
        /// </summary>
        public string balance_rules { get; set; }= null;
        /// <summary>
        /// 激活会员卡的url。非必填。
        /// </summary>
        public string activate_url { get; set; } = null;
        /// <summary>
        /// 激活会员卡url对应的小程序user_name，仅可跳转该公众号绑定的小程序.非必填。
        /// </summary>
        public string activate_app_brand_user_name { get; set; } = null;
        /// <summary>
        /// 激活会员卡url对应的小程序path,非必填。
        /// </summary>
        public string activate_app_brand_pass { get; set; } = null;
        /// <summary>
        /// 自定义会员信息类目，会员卡激活后显示
        /// </summary>
        public class CustomCell
        {
            /// <summary>
            /// 入口名称。   
            /// </summary>
            public string name { get; set; }
            /// <summary>
            /// 入口右侧提示语，6个汉字内。            
            /// </summary>
            public string tips { get; set; }
            /// <summary>
            /// 入口跳转链接。
            /// </summary>
            public string url { get; set; }
        }
        /// <summary>
        /// 自定义会员信息类目，会员卡激活后显示。   
        /// </summary>
        public CustomCell custom_cell1 { get; set; }

        public BonusRule bonus_rule { get; set; }
        /// <summary>
        /// 积分规则。用于微信买单功能。           
        /// </summary>
        public class BonusRule
        {
            /// <summary>
            /// 消费金额。以分为单位。            
            /// </summary>
            public int cost_money_unit { get; set; }
            /// <summary>
            /// 对应增加的积分。     
            /// </summary>
            public int increase_bonus { get; set; }
            /// <summary>
            /// 用户单次可获取的积分上限。        
            /// </summary>
            public int max_increase_bonus { get; set; }
            /// <summary>
            /// 初始设置积分。          
            /// </summary>
            public int init_increase_bonus { get; set; }
            /// <summary>
            /// 每使用5积分。
            /// </summary>
            public int cost_bonus_unit { get; set; }
            /// <summary>
            /// 抵扣xx元，（这里以分为单位）            
            /// </summary>
            public int reduce_money { get; set; }
            /// <summary>
            /// 抵扣条件，满xx元（这里以分为单位）可用。 
            /// </summary>
            public int least_money_to_use_bonus { get; set; }
            /// <summary>
            /// 抵扣条件，单笔最多使用xx积分。        
            /// </summary>
            public int max_reduce_bonus { get; set; }
        }
        /// <summary>
        /// 折扣，该会员卡享受的折扣优惠,填10就是九折。
        /// </summary>
        public int discount { get; set; }
        #endregion
    }
}
